# Target Makefile Fragment for R8C/M16C/M32C
# Copyright (C) 2005
# Free Software Foundation, Inc.
# Contributed by Red Hat.
#
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published
# by the Free Software Foundation; either version 2, or (at your
# option) any later version.
#
# GCC is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING.  If not, write to the Free
# Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.

LIB1ASMSRC = m32c/m32c-lib1.S

LIB1ASMFUNCS = \
	__m32c_memregs \
	__m32c_eh_return \
	__m32c_mulsi3 \
	__m32c_cmpsi2 \
	__m32c_ucmpsi2 \
	__m32c_jsri16

LIB2FUNCS_EXTRA = $(srcdir)/config/m32c/m32c-lib2.c

# floating point emulation libraries

FPBIT = fp-bit.c
DPBIT = dp-bit.c

fp-bit.c: $(srcdir)/config/fp-bit.c
	echo '#define FLOAT'				> fp-bit.c
	cat $(srcdir)/config/fp-bit.c			>> fp-bit.c

dp-bit.c: $(srcdir)/config/fp-bit.c
	cat $(srcdir)/config/fp-bit.c > dp-bit.c

# target-specific files

md_file = md

MD_FILES = m32c predicates addsub bitops blkmov cond jump minmax mov muldiv prologue shift

# Doing it this way lets the gen* programs report the right line numbers.

md : $(MD_FILES:%=$(srcdir)/config/m32c/%.md) $(srcdir)/config/m32c/t-m32c
	for md in $(MD_FILES); do \
	  echo "(include \"$(srcdir)/config/m32c/$$md.md\")"; \
	done > md

m32c-pragma.o: $(srcdir)/config/m32c/m32c-pragma.c $(RTL_H) $(TREE_H) $(CONFIG_H)
	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<

# We support four CPU series, but R8C and M16C share one multilib, and
# M32C and M32CM share another.

MULTILIB_OPTIONS = mcpu=m32cm
MULTILIB_DIRNAMES = m32cm
MULTILIB_MATCHES = mcpu?m32cm=mcpu?m32c mcpu?r8c=mcpu?m16c

EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o
